import { _decorator, Component } from 'cc';
import { AudioManager } from '../../../core/modules/audio/AudioManager';
import { LoginAudio } from './LoginAudio';
const { ccclass, property } = _decorator;

@ccclass('LoginEntry')
export class LoginCtrl extends Component {
    init() {
        AudioManager.ins.playBgMusic(LoginAudio.bgm);
    }

    //模拟登录实现(后续修改此实现即可)
    private autoLogin(): void {
        //模拟登录耗时，1秒后回调，后面改成不同平台登录逻辑即可
        setTimeout(() => {
            this.m_OnLoginSuccess();
        }, 1000)
    }

    private m_OnLoginSuccess: Function = null;

    showLogin(onLoginSuccess: Function): void {
        this.m_OnLoginSuccess = onLoginSuccess;
        this.autoLogin();
    }

    // private async onLoginSuccess(): Promise<void> {
    //     //子包 Match3BN 在loadBundle 完成的时候，包中的脚本将被 require，Match3Entry 这样的组件就被注册到引擎的组件管理模块中。
    //     //因此就可以通过 addComponent("Match3Entry") 的形式正确的添加组件。
    //     await ResManager.ins.loadBundleAsync("Match3BN");
    //     // 不使用this.node.addComponent(Match3Entry);
    //     // 这是因为 LoginEntry.ts 脚本所在的Asset Bundle 包的优先级高于 Match3 ，因此这样的引用是错误的。
    //     //1、加载依赖关系错乱；
    //     //2、微信小游戏、抖音小游戏中 Match3BN （是小游戏分包）的脚本将被错误的打包到 LoginBN 中。
    //     let match3Entry = this.node.addComponent("Match3Entry");
    //     (match3Entry as any).init();
    // }
}


